<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 创建Set
    const set = new Set()
    console.log(set)
    // 添加元素
    set.add(10)
    set.add(22)
    set.add(35)
    set.add(22)
    console.log(set)
    
    const info = {}
    const obj = {}
    set.add(info)
    set.add(obj)
    console.log(set)

    // 3.应用场景:数组的去重
    const names = ['abc', 'cba', 'nba', 'cba', 'abc']
    // const newNames = []
    // for (const item of names) {
    //   if(!newNames.includes(item)) {
    //     newNames.push(item)
    //   }
    // }

    // const newNames = Array.from(new Set(names))
    const newNames = [...new Set(names)]
    console.log(newNames)

    // 4.Set的其他属性和方法
    // 属性
    // 4.0 size属性-获取元素个数
    console.log(set.size) // 4
    // 方法
    // 4.1 add方法-添加元素
    set.add(100)
    console.log(set)
    // 4.2 delete方法-删除元素
    set.delete(100)
    console.log(set)
    // 4.3 has方法-判断元素是否存在
    console.log(set.has(info)) // true
    // 4.4 clear方法-清空元素
    set.clear()
    console.log(set)
    // 4.5 forEach方法-遍历元素
    set.add(10)
    set.add(22)
    set.add(33)
    set.forEach(item=>console.log(item))


  </script>
</body>
</html>